﻿using System;
using System.Runtime.InteropServices;

namespace Teigha.Core
{
	public class OdGsView_Internal : OdGsView
	{
		public OdGsView_Internal(IntPtr cPtr, bool cMemoryOwn) : base(cPtr, cMemoryOwn)
		{
		}

		public override OdGsDevice device()
		{
			IntPtr cPtr = GlobalsPINVOKE.OdGsView_device(OdGsView.getCPtr(this));
			OdGsDevice result = new OdGsDevice_Internal(cPtr, false);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public override OdGiContext userGiContext()
		{
			IntPtr cPtr = GlobalsPINVOKE.OdGsView_userGiContext(OdGsView.getCPtr(this));
			OdGiContext result = new OdGiContext_Internal(cPtr, false);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public override void setUserGiContext(OdGiContext pUserGiContext)
		{
			GlobalsPINVOKE.OdGsView_setUserGiContext(OdGsView.getCPtr(this), OdGiContext.getCPtr(pUserGiContext));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public override double lineweightToDcScale()
		{
			double result = GlobalsPINVOKE.OdGsView_lineweightToDcScale(OdGsView.getCPtr(this));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public override void setLineweightToDcScale(double scale)
		{
			GlobalsPINVOKE.OdGsView_setLineweightToDcScale(OdGsView.getCPtr(this), scale);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public override void setLineweightEnum(byte[] numLineweights)
		{
			IntPtr intPtr = Teigha.Core.Helpers.MarshalbyteFixedArray(numLineweights);
			try
			{
				GlobalsPINVOKE.OdGsView_setLineweightEnum(OdGsView.getCPtr(this), intPtr);
				if (GlobalsPINVOKE.SWIGPendingException.Pending)
				{
					throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
				}
			}
			finally
			{
				Marshal.FreeCoTaskMem(intPtr);
			}
		}

		public override void setViewport(OdGePoint2d lowerLeft, OdGePoint2d upperRight)
		{
			GlobalsPINVOKE.OdGsView_setViewport__SWIG_0(OdGsView.getCPtr(this), OdGePoint2d.getCPtr(lowerLeft), OdGePoint2d.getCPtr(upperRight));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public override void setViewport(OdGsDCRect screenRect)
		{
			GlobalsPINVOKE.OdGsView_setViewport__SWIG_1(OdGsView.getCPtr(this), OdGsDCRect.getCPtr(screenRect));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public override void setViewport(OdGsDCRectDouble screenRect)
		{
			GlobalsPINVOKE.OdGsView_setViewport__SWIG_2(OdGsView.getCPtr(this), OdGsDCRectDouble.getCPtr(screenRect));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public override void getViewport(OdGePoint2d lowerLeft, OdGePoint2d upperRight)
		{
			GlobalsPINVOKE.OdGsView_getViewport__SWIG_0(OdGsView.getCPtr(this), OdGePoint2d.getCPtr(lowerLeft), OdGePoint2d.getCPtr(upperRight));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public override void getViewport(OdGsDCRect screenRect)
		{
			GlobalsPINVOKE.OdGsView_getViewport__SWIG_1(OdGsView.getCPtr(this), OdGsDCRect.getCPtr(screenRect));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public override void getViewport(OdGsDCRectDouble screenRect)
		{
			GlobalsPINVOKE.OdGsView_getViewport__SWIG_2(OdGsView.getCPtr(this), OdGsDCRectDouble.getCPtr(screenRect));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public override void setViewportClipRegion(OdGePoint2dArray[] numContours)
		{
			IntPtr intPtr = Helpers.MarshalClipRegion(numContours);
			try
			{
				GlobalsPINVOKE.OdGsView_setViewportClipRegion__SWIG_1(OdGsView.getCPtr(this), intPtr);
				if (GlobalsPINVOKE.SWIGPendingException.Pending)
				{
					throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
				}
			}
			finally
			{
				Marshal.FreeCoTaskMem(intPtr);
			}
		}

		public override void viewportClipRegion(OdIntArray counts, OdGsDCPointArray vertices)
		{
			GlobalsPINVOKE.OdGsView_viewportClipRegion__SWIG_0(OdGsView.getCPtr(this), OdIntArray.getCPtr(counts).Handle, OdGsDCPointArray.getCPtr(vertices));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public override void viewportClipRegion(OdIntArray counts, OdGePoint2dArray vertices)
		{
			GlobalsPINVOKE.OdGsView_viewportClipRegion__SWIG_1(OdGsView.getCPtr(this), OdIntArray.getCPtr(counts).Handle, OdGePoint2dArray.getCPtr(vertices).Handle);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public override void setViewportBorderProperties(uint color, int width)
		{
			GlobalsPINVOKE.OdGsView_setViewportBorderProperties(OdGsView.getCPtr(this), color, width);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public override void getViewportBorderProperties(out uint color, out int width)
		{
			GlobalsPINVOKE.OdGsView_getViewportBorderProperties(OdGsView.getCPtr(this), out color, out width);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public override void setViewportBorderVisibility(bool visible)
		{
			GlobalsPINVOKE.OdGsView_setViewportBorderVisibility(OdGsView.getCPtr(this), visible);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public override bool isViewportBorderVisible()
		{
			bool result = GlobalsPINVOKE.OdGsView_isViewportBorderVisible(OdGsView.getCPtr(this));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public override void setView(OdGePoint3d position, OdGePoint3d target, OdGeVector3d upVector, double fieldWidth, double fieldHeight, OdGsView.Projection projectionType)
		{
			GlobalsPINVOKE.OdGsView_setView__SWIG_0(OdGsView.getCPtr(this), OdGePoint3d.getCPtr(position), OdGePoint3d.getCPtr(target), OdGeVector3d.getCPtr(upVector), fieldWidth, fieldHeight, (int)projectionType);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public override void setView(OdGePoint3d position, OdGePoint3d target, OdGeVector3d upVector, double fieldWidth, double fieldHeight)
		{
			GlobalsPINVOKE.OdGsView_setView__SWIG_1(OdGsView.getCPtr(this), OdGePoint3d.getCPtr(position), OdGePoint3d.getCPtr(target), OdGeVector3d.getCPtr(upVector), fieldWidth, fieldHeight);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public override OdGePoint3d position()
		{
			IntPtr cPtr = GlobalsPINVOKE.OdGsView_position(OdGsView.getCPtr(this));
			OdGePoint3d result = new OdGePoint3d(cPtr, false);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public override OdGePoint3d target()
		{
			IntPtr cPtr = GlobalsPINVOKE.OdGsView_target(OdGsView.getCPtr(this));
			OdGePoint3d result = new OdGePoint3d(cPtr, false);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public override OdGeVector3d upVector()
		{
			IntPtr cPtr = GlobalsPINVOKE.OdGsView_upVector(OdGsView.getCPtr(this));
			OdGeVector3d result = new OdGeVector3d(cPtr, false);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public override double lensLength()
		{
			double result = GlobalsPINVOKE.OdGsView_lensLength(OdGsView.getCPtr(this));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public override void setLensLength(double lensLength)
		{
			GlobalsPINVOKE.OdGsView_setLensLength(OdGsView.getCPtr(this), lensLength);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public override bool isPerspective()
		{
			bool result = GlobalsPINVOKE.OdGsView_isPerspective(OdGsView.getCPtr(this));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public override double fieldWidth()
		{
			double result = GlobalsPINVOKE.OdGsView_fieldWidth(OdGsView.getCPtr(this));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public override double fieldHeight()
		{
			double result = GlobalsPINVOKE.OdGsView_fieldHeight(OdGsView.getCPtr(this));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public override void setEnableFrontClip(bool enable)
		{
			GlobalsPINVOKE.OdGsView_setEnableFrontClip(OdGsView.getCPtr(this), enable);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public override bool isFrontClipped()
		{
			bool result = GlobalsPINVOKE.OdGsView_isFrontClipped(OdGsView.getCPtr(this));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public override void setFrontClip(double frontClip)
		{
			GlobalsPINVOKE.OdGsView_setFrontClip(OdGsView.getCPtr(this), frontClip);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public override double frontClip()
		{
			double result = GlobalsPINVOKE.OdGsView_frontClip(OdGsView.getCPtr(this));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public override void setEnableBackClip(bool enable)
		{
			GlobalsPINVOKE.OdGsView_setEnableBackClip(OdGsView.getCPtr(this), enable);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public override bool isBackClipped()
		{
			bool result = GlobalsPINVOKE.OdGsView_isBackClipped(OdGsView.getCPtr(this));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public override void setBackClip(double backClip)
		{
			GlobalsPINVOKE.OdGsView_setBackClip(OdGsView.getCPtr(this), backClip);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public override double backClip()
		{
			double result = GlobalsPINVOKE.OdGsView_backClip(OdGsView.getCPtr(this));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public override OdGeMatrix3d viewingMatrix()
		{
			IntPtr cPtr = GlobalsPINVOKE.OdGsView_viewingMatrix(OdGsView.getCPtr(this));
			OdGeMatrix3d result = new OdGeMatrix3d(cPtr, false);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public override OdGeMatrix3d projectionMatrix()
		{
			IntPtr cPtr = GlobalsPINVOKE.OdGsView_projectionMatrix(OdGsView.getCPtr(this));
			OdGeMatrix3d result = new OdGeMatrix3d(cPtr, false);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public override OdGeMatrix3d screenMatrix()
		{
			IntPtr cPtr = GlobalsPINVOKE.OdGsView_screenMatrix(OdGsView.getCPtr(this));
			OdGeMatrix3d result = new OdGeMatrix3d(cPtr, false);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public override OdGeMatrix3d worldToDeviceMatrix()
		{
			IntPtr cPtr = GlobalsPINVOKE.OdGsView_worldToDeviceMatrix(OdGsView.getCPtr(this));
			OdGeMatrix3d result = new OdGeMatrix3d(cPtr, false);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public override OdGeMatrix3d objectToDeviceMatrix()
		{
			IntPtr cPtr = GlobalsPINVOKE.OdGsView_objectToDeviceMatrix(OdGsView.getCPtr(this));
			OdGeMatrix3d result = new OdGeMatrix3d(cPtr, false);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public override void setMode(OdGsView.RenderMode mode)
		{
			GlobalsPINVOKE.OdGsView_setMode(OdGsView.getCPtr(this), (int)mode);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public override OdGsView.RenderMode mode()
		{
			OdGsView.RenderMode result = (OdGsView.RenderMode)GlobalsPINVOKE.OdGsView_mode(OdGsView.getCPtr(this));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public override bool add(OdGiDrawable pSceneGraph, OdGsModel pModel)
		{
			bool result = GlobalsPINVOKE.OdGsView_add(OdGsView.getCPtr(this), OdGiDrawable.getCPtr(pSceneGraph), OdGsModel.getCPtr(pModel));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public override bool erase(OdGiDrawable sceneGraph)
		{
			bool result = GlobalsPINVOKE.OdGsView_erase(OdGsView.getCPtr(this), OdGiDrawable.getCPtr(sceneGraph));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public override void eraseAll()
		{
			GlobalsPINVOKE.OdGsView_eraseAll(OdGsView.getCPtr(this));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public override void invalidate()
		{
			GlobalsPINVOKE.OdGsView_invalidate__SWIG_0(OdGsView.getCPtr(this));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public override void invalidate(OdGsDCRect screenRect)
		{
			GlobalsPINVOKE.OdGsView_invalidate__SWIG_1(OdGsView.getCPtr(this), OdGsDCRect.getCPtr(screenRect));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public override bool isValid()
		{
			bool result = GlobalsPINVOKE.OdGsView_isValid(OdGsView.getCPtr(this));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public override void update()
		{
			GlobalsPINVOKE.OdGsView_update(OdGsView.getCPtr(this));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public override void beginInteractivity(double frameRateInHz)
		{
			GlobalsPINVOKE.OdGsView_beginInteractivity(OdGsView.getCPtr(this), frameRateInHz);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public override void endInteractivity()
		{
			GlobalsPINVOKE.OdGsView_endInteractivity(OdGsView.getCPtr(this));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public override void flush()
		{
			GlobalsPINVOKE.OdGsView_flush(OdGsView.getCPtr(this));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public override void hide()
		{
			GlobalsPINVOKE.OdGsView_hide(OdGsView.getCPtr(this));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public override void show()
		{
			GlobalsPINVOKE.OdGsView_show(OdGsView.getCPtr(this));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public override bool isVisible()
		{
			bool result = GlobalsPINVOKE.OdGsView_isVisible(OdGsView.getCPtr(this));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public override void freezeLayer(OdDbStub layerID)
		{
			GlobalsPINVOKE.OdGsView_freezeLayer(OdGsView.getCPtr(this), OdDbStub.getCPtr(layerID));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public override void thawLayer(OdDbStub layerID)
		{
			GlobalsPINVOKE.OdGsView_thawLayer(OdGsView.getCPtr(this), OdDbStub.getCPtr(layerID));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public override void clearFrozenLayers()
		{
			GlobalsPINVOKE.OdGsView_clearFrozenLayers(OdGsView.getCPtr(this));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public override void invalidateCachedViewportGeometry()
		{
			GlobalsPINVOKE.OdGsView_invalidateCachedViewportGeometry(OdGsView.getCPtr(this));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public override void select(OdGsDCPoint[] pts, OdGsSelectionReactor pReactor, OdGsView.SelectionMode mode)
		{
			IntPtr intPtr = Helpers.MarshalOdGsDCPointArray(pts);
			try
			{
				GlobalsPINVOKE.OdGsView_select(OdGsView.getCPtr(this), intPtr, OdGsSelectionReactor.getCPtr(pReactor), (int)mode);
				if (GlobalsPINVOKE.SWIGPendingException.Pending)
				{
					throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
				}
			}
			finally
			{
				Marshal.FreeCoTaskMem(intPtr);
			}
		}

		public override void dolly(OdGeVector3d dollyVector)
		{
			GlobalsPINVOKE.OdGsView_dolly__SWIG_0(OdGsView.getCPtr(this), OdGeVector3d.getCPtr(dollyVector));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public override void dolly(double xDolly, double yDolly, double zDolly)
		{
			GlobalsPINVOKE.OdGsView_dolly__SWIG_1(OdGsView.getCPtr(this), xDolly, yDolly, zDolly);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public override void roll(double rollAngle)
		{
			GlobalsPINVOKE.OdGsView_roll(OdGsView.getCPtr(this), rollAngle);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public override void orbit(double xOrbit, double yOrbit)
		{
			GlobalsPINVOKE.OdGsView_orbit(OdGsView.getCPtr(this), xOrbit, yOrbit);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public override void zoom(double zoomFactor)
		{
			GlobalsPINVOKE.OdGsView_zoom(OdGsView.getCPtr(this), zoomFactor);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public override void pan(double xPan, double yPan)
		{
			GlobalsPINVOKE.OdGsView_pan(OdGsView.getCPtr(this), xPan, yPan);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public override OdGsView cloneView(bool cloneViewParameters, bool cloneGeometry)
		{
			IntPtr cPtr = GlobalsPINVOKE.OdGsView_cloneView__SWIG_0(OdGsView.getCPtr(this), cloneViewParameters, cloneGeometry);
			OdGsView result = new OdGsView_Internal(cPtr, false);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public override OdGsView cloneView(bool cloneViewParameters)
		{
			IntPtr cPtr = GlobalsPINVOKE.OdGsView_cloneView__SWIG_1(OdGsView.getCPtr(this), cloneViewParameters);
			OdGsView result = new OdGsView_Internal(cPtr, false);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public override OdGsView cloneView()
		{
			IntPtr cPtr = GlobalsPINVOKE.OdGsView_cloneView__SWIG_2(OdGsView.getCPtr(this));
			OdGsView result = new OdGsView_Internal(cPtr, false);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public override void viewParameters(OdGsView pView)
		{
			GlobalsPINVOKE.OdGsView_viewParameters(OdGsView.getCPtr(this), OdGsView.getCPtr(pView));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public override bool exceededBounds()
		{
			bool result = GlobalsPINVOKE.OdGsView_exceededBounds(OdGsView.getCPtr(this));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public override void enableStereo(bool enabled)
		{
			GlobalsPINVOKE.OdGsView_enableStereo(OdGsView.getCPtr(this), enabled);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public override bool isStereoEnabled()
		{
			bool result = GlobalsPINVOKE.OdGsView_isStereoEnabled(OdGsView.getCPtr(this));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public override void setStereoParameters(double magnitude, double parallax)
		{
			GlobalsPINVOKE.OdGsView_setStereoParameters(OdGsView.getCPtr(this), magnitude, parallax);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public override void getStereoParameters(out double magnitude, out double parallax)
		{
			GlobalsPINVOKE.OdGsView_getStereoParameters(OdGsView.getCPtr(this), out magnitude, out parallax);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public override void initLights(OdRxIterator pLightsIterator)
		{
			GlobalsPINVOKE.OdGsView_initLights(OdGsView.getCPtr(this), OdRxIterator.getCPtr(pLightsIterator));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public override void setLinetypeScaleMultiplier(double linetypeScaleMultiplier)
		{
			GlobalsPINVOKE.OdGsView_setLinetypeScaleMultiplier(OdGsView.getCPtr(this), linetypeScaleMultiplier);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public override void setAlternateLinetypeScaleMultiplier(double linetypeAlternateScaleMultiplier)
		{
			GlobalsPINVOKE.OdGsView_setAlternateLinetypeScaleMultiplier(OdGsView.getCPtr(this), linetypeAlternateScaleMultiplier);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public override void setClearColor(OdGsView.ClearColor color)
		{
			GlobalsPINVOKE.OdGsView_setClearColor(OdGsView.getCPtr(this), (int)color);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public override bool pointInViewport(OdGePoint2d screenPoint)
		{
			bool result = GlobalsPINVOKE.OdGsView_pointInViewport(OdGsView.getCPtr(this), OdGePoint2d.getCPtr(screenPoint));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public override void getNumPixelsInUnitSquare(OdGePoint3d point, OdGePoint2d pixelDensity, bool bUsePerspective)
		{
			GlobalsPINVOKE.OdGsView_getNumPixelsInUnitSquare__SWIG_0(OdGsView.getCPtr(this), OdGePoint3d.getCPtr(point), OdGePoint2d.getCPtr(pixelDensity), bUsePerspective);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public override void getNumPixelsInUnitSquare(OdGePoint3d point, OdGePoint2d pixelDensity)
		{
			GlobalsPINVOKE.OdGsView_getNumPixelsInUnitSquare__SWIG_1(OdGsView.getCPtr(this), OdGePoint3d.getCPtr(point), OdGePoint2d.getCPtr(pixelDensity));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public override void setBackground(OdDbStub backgroundId)
		{
			GlobalsPINVOKE.OdGsView_setBackground(OdGsView.getCPtr(this), OdDbStub.getCPtr(backgroundId));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public override OdDbStub background()
		{
			IntPtr intPtr = GlobalsPINVOKE.OdGsView_background(OdGsView.getCPtr(this));
			OdDbStub result = (intPtr == IntPtr.Zero) ? null : new OdDbStub(intPtr, false);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public override void setVisualStyle(OdDbStub visualStyleId)
		{
			GlobalsPINVOKE.OdGsView_setVisualStyle__SWIG_0(OdGsView.getCPtr(this), OdDbStub.getCPtr(visualStyleId));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public override OdDbStub visualStyle()
		{
			IntPtr intPtr = GlobalsPINVOKE.OdGsView_visualStyle__SWIG_0(OdGsView.getCPtr(this));
			OdDbStub result = (intPtr == IntPtr.Zero) ? null : new OdDbStub(intPtr, false);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public override void setVisualStyle(OdGiVisualStyle visualStyle)
		{
			GlobalsPINVOKE.OdGsView_setVisualStyle__SWIG_1(OdGsView.getCPtr(this), OdGiVisualStyle.getCPtr(visualStyle));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public override bool visualStyle(OdGiVisualStyle visualStyle)
		{
			bool result = GlobalsPINVOKE.OdGsView_visualStyle__SWIG_1(OdGsView.getCPtr(this), OdGiVisualStyle.getCPtr(visualStyle));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}
	}
}
